﻿Imports ServiciosAT
Imports Utilitarios

Namespace SIREOS
    Public Class ClienteWSR

        Function buscarCliente(oSede As SireosWSCliente.Sede) As DataTable
            Dim oClienteWS As New SireosWSCliente.WSCliente

            Dim _buscarClienteRequest As New SireosWSCliente.buscarClienteRequest
            Dim _buscarClienteResponse As New SireosWSCliente.buscarClienteResponse

            _buscarClienteRequest.sede = oSede
            _buscarClienteResponse = oClienteWS.buscarCliente(_buscarClienteRequest)

            If Not (_buscarClienteResponse.listaObjetoNegocio.sede Is Nothing) Then

                Dim tot As Integer = _buscarClienteResponse.listaObjetoNegocio.sede.Count
                Dim dt As New DataTable
                dt.Columns.Add("CodSede")
                dt.Columns.Add("CodCliente")
                dt.Columns.Add("CodTipoCliente")
                dt.Columns.Add("NroDocumento")
                dt.Columns.Add("Cliente")
                dt.Columns.Add("dirSede")
                dt.Columns.Add("Telefono")
                dt.Columns.Add("Correo")
                For i As Integer = 0 To tot - 1
                    dt.Rows.Add(_buscarClienteResponse.listaObjetoNegocio.sede.ElementAt(i).codSede, _
                                _buscarClienteResponse.listaObjetoNegocio.sede.ElementAt(i).codCliente, _
                                _buscarClienteResponse.listaObjetoNegocio.sede.ElementAt(i).cliente.codTipoCLiente, _
                                _buscarClienteResponse.listaObjetoNegocio.sede.ElementAt(i).cliente.nroDocumento, _
                                _buscarClienteResponse.listaObjetoNegocio.sede.ElementAt(i).cliente.nomCliente, _
                                _buscarClienteResponse.listaObjetoNegocio.sede.ElementAt(i).dirSede, _
                                _buscarClienteResponse.listaObjetoNegocio.sede.ElementAt(i).telSede, _
                                _buscarClienteResponse.listaObjetoNegocio.sede.ElementAt(i).correo1)
                Next
                Return dt
            Else
                Return Nothing
            End If
        End Function

        Function cargarDatosCliente(oSede As SireosWSCliente.Sede) As SireosWSCliente.Sede
            Dim oClienteWS As New SireosWSCliente.WSCliente

            Dim _cargarDatosClienteRequest As New SireosWSCliente.cargarDatosClienteRequest
            Dim _cargarDatosClienteResponse As New SireosWSCliente.cargarDatosClienteResponse

            _cargarDatosClienteRequest.sede = oSede
            _cargarDatosClienteRequest.sede.codSedeSpecified = True

            _cargarDatosClienteResponse = oClienteWS.cargarDatosCliente(_cargarDatosClienteRequest)

            If Not (_cargarDatosClienteResponse.sede Is Nothing) Then

                Dim oUbigeoBE As New SireosWSCliente.Ubigeo
                oUbigeoBE.codDepartamento = _cargarDatosClienteResponse.sede.ubigeo.codDepartamento
                oUbigeoBE.codProvincia = _cargarDatosClienteResponse.sede.ubigeo.codProvincia
                oUbigeoBE.codUbigeo = _cargarDatosClienteResponse.sede.ubigeo.codUbigeo

                Dim oClienteBE As New SireosWSCliente.Cliente
                oClienteBE.codCliente = _cargarDatosClienteResponse.sede.cliente.codCliente
                oClienteBE.nomCliente = _cargarDatosClienteResponse.sede.cliente.nomCliente
                oClienteBE.apeCliente = _cargarDatosClienteResponse.sede.cliente.razonSocial
                oClienteBE.codTipoCLiente = _cargarDatosClienteResponse.sede.cliente.codTipoCLiente
                oClienteBE.codTipoDocumento = _cargarDatosClienteResponse.sede.cliente.codTipoDocumento
                oClienteBE.nroDocumento = _cargarDatosClienteResponse.sede.cliente.nroDocumento
                oClienteBE.paginaWeb = _cargarDatosClienteResponse.sede.cliente.paginaWeb
                oClienteBE.tiendaCliente = _cargarDatosClienteResponse.sede.cliente.tiendaCliente

                Dim oSedeBE As New SireosWSCliente.Sede
                oSedeBE.codCliente = _cargarDatosClienteResponse.sede.codCliente
                oSedeBE.codUbigeo = _cargarDatosClienteResponse.sede.codUbigeo
                oSedeBE.nomSede = _cargarDatosClienteResponse.sede.nomSede
                oSedeBE.dirSede = _cargarDatosClienteResponse.sede.dirSede
                oSedeBE.telSede = _cargarDatosClienteResponse.sede.telSede
                oSedeBE.aneSede = _cargarDatosClienteResponse.sede.aneSede
                oSedeBE.celSede = _cargarDatosClienteResponse.sede.celSede
                oSedeBE.correo1 = _cargarDatosClienteResponse.sede.correo1
                oSedeBE.correo2 = _cargarDatosClienteResponse.sede.correo2
                oSedeBE.ubigeo = oUbigeoBE
                oSedeBE.cliente = oClienteBE
                Return oSedeBE
            Else
                Return Nothing
            End If
        End Function

        Function listarContactosSede(oSede As SireosWSCliente.Sede) As DataTable
            Dim oClienteWS As New SireosWSCliente.WSCliente

            Dim _listarContactosSedeRequest As New SireosWSCliente.listarContactosSedeRequest
            Dim _listarContactosSedeResponse As New SireosWSCliente.listarContactosSedeResponse

            _listarContactosSedeRequest.sede = oSede
            _listarContactosSedeRequest.sede.codSedeSpecified = True

            _listarContactosSedeResponse = oClienteWS.listarContactosSede(_listarContactosSedeRequest)

            If Not (_listarContactosSedeResponse.listaObjetoNegocio.contacto Is Nothing) Then
                Dim tot As Integer = _listarContactosSedeResponse.listaObjetoNegocio.contacto.Count
                Dim dt As New DataTable
                dt.Columns.Add("CodContacto")
                dt.Columns.Add("Contacto")
                For i As Integer = 0 To tot - 1
                    dt.Rows.Add(_listarContactosSedeResponse.listaObjetoNegocio.contacto.ElementAt(i).codContacto, _listarContactosSedeResponse.listaObjetoNegocio.contacto.ElementAt(i).nomContacto)
                Next
                Return dt
            Else
                Return Nothing
            End If
        End Function

        Function listarCliente(oCliente As SireosWSCliente.Cliente) As DataTable
            Dim oClienteWS As New SireosWSCliente.WSCliente

            Dim _listarClientesRequest As New SireosWSCliente.listarClientesRequest
            Dim _listarClientesResponse As New SireosWSCliente.listarClientesResponse

            _listarClientesRequest.cliente = oCliente
            _listarClientesRequest.cliente.codTipoCLienteSpecified = True
            _listarClientesResponse = oClienteWS.listarClientes(_listarClientesRequest)

            If Not (_listarClientesResponse.listaObjetoNegocio.cliente Is Nothing) Then
                Dim tot As Integer = _listarClientesResponse.listaObjetoNegocio.cliente.Count
                Dim dt As New DataTable
                dt.Columns.Add("CodCliente")
                dt.Columns.Add("Cliente")
                For i As Integer = 0 To tot - 1
                    dt.Rows.Add(_listarClientesResponse.listaObjetoNegocio.cliente.ElementAt(i).codCliente, _listarClientesResponse.listaObjetoNegocio.cliente.ElementAt(i).nomCliente)
                Next
                Return dt
            Else
                Return Nothing
            End If
        End Function

        Function listarSedeCliente(oCliente As SireosWSCliente.Cliente) As DataTable
            Dim oClienteWS As New SireosWSCliente.WSCliente

            Dim _listarSedesClienteRequest As New SireosWSCliente.listarSedesClienteRequest
            Dim _listarSedesClienteResponse As New SireosWSCliente.listarSedesClienteResponse

            _listarSedesClienteRequest.cliente = oCliente
            _listarSedesClienteRequest.cliente.codClienteSpecified = True

            _listarSedesClienteResponse = oClienteWS.listarSedesCliente(_listarSedesClienteRequest)

            If Not (_listarSedesClienteResponse.listaObjetoNegocio.sede Is Nothing) Then
                Dim tot As Integer = _listarSedesClienteResponse.listaObjetoNegocio.sede.Count
                Dim dt As New DataTable
                dt.Columns.Add("CodSede")
                dt.Columns.Add("Sede")
                For i As Integer = 0 To tot - 1
                    dt.Rows.Add(_listarSedesClienteResponse.listaObjetoNegocio.sede.ElementAt(i).codSede, _listarSedesClienteResponse.listaObjetoNegocio.sede.ElementAt(i).nomSede)
                Next
                Return dt
            Else
                Return Nothing
            End If
        End Function

        Function listarTienda() As DataTable
            Dim oClienteWS As New SireosWSCliente.WSCliente

            Dim _listarCourierRequest As New SireosWSCliente.listarCourierRequest
            Dim _listarCourierResponse As New SireosWSCliente.listarCourierResponse

            _listarCourierResponse = oClienteWS.listarCourier(_listarCourierRequest)

            If Not (_listarCourierResponse.listaObjetoNegocio.cliente Is Nothing) Then
                Dim tot As Integer = _listarCourierResponse.listaObjetoNegocio.cliente.Count
                Dim dt As New DataTable
                dt.Columns.Add("CodCliente")
                dt.Columns.Add("RazonSocial")
                For i As Integer = 0 To tot - 1
                    dt.Rows.Add(_listarCourierResponse.listaObjetoNegocio.cliente.ElementAt(i).codCliente, _listarCourierResponse.listaObjetoNegocio.cliente.ElementAt(i).razonSocial)
                Next
                Return dt
            Else
                Return Nothing
            End If
        End Function


        Function registrarCliente(oClienteBE As SireosWSCliente.Cliente) As Integer
            Dim oClienteWS As New SireosWSCliente.WSCliente

            Dim _registrarClienteRequest As New SireosWSCliente.registrarClienteRequest
            Dim _registrarClienteResponse As New SireosWSCliente.registrarClienteResponse

            _registrarClienteRequest.cliente = oClienteBE
            _registrarClienteRequest.cliente.cabTipoClienteSpecified = True
            _registrarClienteRequest.cliente.codTipoCLienteSpecified = True
            _registrarClienteRequest.cliente.cabTipoDocumentoSpecified = True
            _registrarClienteRequest.cliente.codTipoDocumentoSpecified = True
            _registrarClienteRequest.cliente.clienteFijoSpecified = True
            _registrarClienteRequest.cliente.tiendaClienteSpecified = True
            _registrarClienteRequest.cliente.usuRegistroSpecified = True

            _registrarClienteResponse = oClienteWS.registrarCliente(_registrarClienteRequest)

            If Not (_registrarClienteResponse.cliente Is Nothing) Then
                Return _registrarClienteResponse.cliente.codCliente
            Else
                Return 0
            End If
        End Function

        Function modificarCliente(oClienteBE As SireosWSCliente.Cliente) As SireosWSCliente.MensajeInformativo
            Dim oClienteWs As New SireosWSCliente.WSCliente

            Dim _modificarClienteRequest As New SireosWSCliente.modificarClienteRequest
            Dim _modificarClienteResponse As New SireosWSCliente.modificarClienteResponse

            _modificarClienteRequest.cliente = oClienteBE
            _modificarClienteRequest.cliente.codTipoDocumentoSpecified = True
            _modificarClienteRequest.cliente.tiendaClienteSpecified = True
            _modificarClienteRequest.cliente.clienteFijoSpecified = True
            _modificarClienteRequest.cliente.codClienteSpecified = True

            _modificarClienteResponse = oClienteWs.modificarCliente(_modificarClienteRequest)

            Return _modificarClienteResponse.mensajeInformativo

        End Function

        Function registrarSede(oSedeBE As SireosWSCliente.Sede) As Integer
            Dim oClienteWS As New SireosWSCliente.WSCliente

            Dim _registrarSedeRequest As New SireosWSCliente.registrarSedeRequest
            Dim _registrarSedeResponse As New SireosWSCliente.registrarSedeResponse

            _registrarSedeRequest.sede = oSedeBE
            _registrarSedeRequest.sede.codUbigeoSpecified = True
            _registrarSedeRequest.sede.codClienteSpecified = True
            _registrarSedeRequest.sede.usuRegistroSpecified = True
            _registrarSedeResponse = oClienteWS.registrarSede(_registrarSedeRequest)

            If Not (_registrarSedeResponse.sede Is Nothing) Then
                Return _registrarSedeResponse.sede.codSede
            Else
                Return 0
            End If
        End Function

        Function modificarSede(oSedeBE As SireosWSCliente.Sede) As SireosWSCliente.MensajeInformativo
            Dim oClienteWs As New SireosWSCliente.WSCliente

            Dim _modificarSedeRequest As New SireosWSCliente.modificarSedeRequest
            Dim _modificarSedeResponse As New SireosWSCliente.modificarSedeResponse

            _modificarSedeRequest.sede = oSedeBE
            _modificarSedeRequest.sede.codSedeSpecified = True
            _modificarSedeRequest.sede.codClienteSpecified = True
            _modificarSedeRequest.sede.codUbigeoSpecified = True
            _modificarSedeRequest.sede.usuRegistroSpecified = True

            _modificarSedeResponse = oClienteWs.modificarSede(_modificarSedeRequest)

            Return _modificarSedeResponse.mensajeInformativo

        End Function

        Function anularSede(oSedeBE As SireosWSCliente.Sede) As SireosWSCliente.MensajeInformativo
            Dim oClienteWs As New SireosWSCliente.WSCliente

            Dim _anularSedeRequest As New SireosWSCliente.anularSedeRequest
            Dim _anularSedeResponse As New SireosWSCliente.anularSedeResponse

            _anularSedeRequest.sede = oSedeBE
            _anularSedeRequest.sede.codSedeSpecified = True

            _anularSedeResponse = oClienteWs.anularSede(_anularSedeRequest)

            Return _anularSedeResponse.mensajeInformativo

        End Function


        Function registrarContacto(oContactoBE As SireosWSCliente.Contacto) As Integer
            Dim oClienteWS As New SireosWSCliente.WSCliente

            Dim _registrarContactoRequest As New SireosWSCliente.registrarContactoRequest
            Dim _registrarContactoResponse As New SireosWSCliente.registrarContactoResponse

            _registrarContactoRequest.contacto = oContactoBE
            _registrarContactoRequest.contacto.codSedeSpecified = True
            _registrarContactoRequest.contacto.usuRegistroSpecified = True

            _registrarContactoResponse = oClienteWS.registrarContacto(_registrarContactoRequest)

            If Not (_registrarContactoResponse.contacto Is Nothing) Then
                Return _registrarContactoResponse.contacto.codContacto
            Else
                Return 0
            End If
        End Function

        Function modificarContacto(oContactoBE As SireosWSCliente.Contacto) As SireosWSCliente.MensajeInformativo
            Dim oClienteWs As New SireosWSCliente.WSCliente

            Dim _modificarContactoRequest As New SireosWSCliente.modificarContactoRequest
            Dim _modificarContactoResponse As New SireosWSCliente.modificarContactoResponse

            _modificarContactoRequest.contacto = oContactoBE
            _modificarContactoRequest.contacto.codSedeSpecified = True
            _modificarContactoRequest.contacto.codContactoSpecified = True

            _modificarContactoResponse = oClienteWs.modificarContacto(_modificarContactoRequest)

            Return _modificarContactoResponse.mensajeInformativo

        End Function

        Function cargarDatosContacto(oContacto As SireosWSCliente.Contacto) As SireosWSCliente.Contacto
            Dim oClienteWs As New SireosWSCliente.WSCliente

            Dim _cargarDatosContactoRequest As New SireosWSCliente.cargarDatosContactoRequest
            Dim _cargarDatosContactoResponse As New SireosWSCliente.cargarDatosContactoResponse

            _cargarDatosContactoRequest.contacto = oContacto
            _cargarDatosContactoRequest.contacto.codContactoSpecified = True

            _cargarDatosContactoResponse = oClienteWs.cargarDatosContacto(_cargarDatosContactoRequest)

            If Not (_cargarDatosContactoResponse.contacto Is Nothing) Then
                Dim oContactoBE As New SireosWSCliente.Contacto
                oContactoBE.codSede = _cargarDatosContactoResponse.contacto.codSede
                oContactoBE.nomContacto = _cargarDatosContactoResponse.contacto.nomContacto
                oContactoBE.apeContacto = _cargarDatosContactoResponse.contacto.apeContacto
                oContactoBE.telContacto = _cargarDatosContactoResponse.contacto.telContacto
                oContactoBE.mailContacto = _cargarDatosContactoResponse.contacto.mailContacto
                oContactoBE.estRegistro = _cargarDatosContactoResponse.contacto.estRegistro
                Return oContactoBE
            Else
                Return Nothing
            End If
        End Function

    End Class
End Namespace
